查看原文
其他

究竟什么是敏捷测试和探索式测试?

朱少民 软件质量报道 2022-06-03

发起 敏捷测试现状调查 时,在相关测试的微信群里讨论时,依然感觉不少测试人员(甚至是比较资深的测试人员)还没有真正理解“敏捷测试探索式测试 。所以,为了帮助大家能填好调查表格,先帮助大家统一一下认识:

  • 究竟什么是敏捷测试?

  • 什么是探索式测试?


一、究竟什么是敏捷测试?

按照wiki的定义:“Agile testing is a  practice that follows the principles of . Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. 实例化需求) is used to capture examples of desired and undesired behavior and guide coding.


我在2010年为《程序员》杂志写了一篇文章——敏捷测试的方法和实践,定义“ 敏捷测试就是持续地、及时地向团队反馈软件质量风险/问题 ”。之后,2013年为infoQ 写了一篇文章“究竟什么是敏捷测试?(http://www.infoq.com/cn/articles/agile-test )” ,着重从敏捷开发的12项原则出发,讨论什么是敏捷测试,再结合大家普遍采用的Scrum模型来讨论敏捷测试的具体流程和实践。


但简单的理解,敏捷测试是:

具有敏捷价值观的测试

遵守敏捷开发原则的测试

过去几年,我在做 “敏捷测试” 相关培训时,基于敏捷开发的12项原则基础之上,概括了敏捷测试原则


我还将 敏捷测试和传统测试做了一个简单的比较:


二、究竟什么是探索式测试?

      探索式测试(Exploratory Test,ET)的萌芽可以追溯到1984年Cem Kaner写“Testing Computer Software”一书中所呈现的。比较明确的定义是James Bach 1995年给出的 “测试设计、执行、学习同时进行” 。这里的设计,应该是指测试用例的设计(测试的详细设计)。之后,距1984的23年之后(2007年),Cem Kaner在和众多的上下文驱动测试流派的测试人士(包括James Bach)讨论之后,给出比较全面的ET的定义:

详见: http://www.kaner.com/pdfs/ETat23.pdf


    探索式测试不是测试方法,而是一种软件测试方式(最好不要写成“探索性测试”),各种测试方法、技术依旧可以应用于这种ET方式中。探索式测试是上下文驱动流派的具体实践、体现,强调软件研发过程中上下文(需求、进度、人员、风险...)是不断变化的,只有测试人员才能及时适应这种变化,对测试范围、思路和方法、软件的操作等做出调整,不断优化测试,尽快、尽早、尽可能多地发现软件缺陷,提高测试的有效性和效率


      探索式测试相对基于脚本的测试(Scripted testing,ST),只是在详细设计、执行等方面有不同的方式(如ET在头脑中设计,ST要写出详细的测试用例或开发出详细的测试脚本),但依旧需要测试计划、需要测试框架/架构的设计(这里的设计,可以理解为测试的概要设计,包括测试点、场景列表等设计),所以它不同于ad hoc testing(随机/自由的测试)。


敏捷测试参考:


探索式测试参考:



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存